BigDecimal এর কনস্ট্রাক্টর এবং ব্যবহার

BigDecimal Class - জাভা ম্যাথ প্যাকেজ (Java.math Package) - Java Technologies

324

BigDecimal ক্লাসটি java.math প্যাকেজের অন্তর্গত এবং এটি arbitrary-precision decimal arithmetic প্রদান করে, যা অত্যন্ত সঠিক এবং বড় সংখ্যার গাণিতিক গণনার জন্য ব্যবহৃত হয়। BigDecimal ক্লাস ব্যবহার করা হয় যখন আমাদের দশমিক সংখ্যার সঠিকতা প্রয়োজন, যেমন অর্থনৈতিক হিসাব বা বৈজ্ঞানিক গণনা যেখানে অনেক বেশি সঠিকতার প্রয়োজন।

BigDecimal Constructor:

BigDecimal এর কনস্ট্রাক্টরগুলি বিভিন্ন ধরনের ইনপুট গ্রহণ করতে সক্ষম। এখানে String, int, long, double ইত্যাদি ধরনের ইনপুট দিয়ে BigDecimal তৈরি করা যায়। তবে double দিয়ে BigDecimal তৈরি করার সময় সতর্ক থাকতে হবে কারণ double এর সঠিকতা সীমিত এবং এটি ছোট বা বৃহৎ সংখ্যার জন্য সঠিক ফলাফল নাও দিতে পারে।

BigDecimal কনস্ট্রাক্টরের ধরন:

  1. BigDecimal(String val): একটি স্ট্রিং মান দিয়ে BigDecimal অবজেক্ট তৈরি করা।
  2. BigDecimal(int val): একটি পূর্ণসংখ্যার মান (int) দিয়ে BigDecimal তৈরি করা।
  3. BigDecimal(long val): একটি লং মান দিয়ে BigDecimal তৈরি করা।
  4. BigDecimal(double val): একটি ডাবল মান দিয়ে BigDecimal তৈরি করা (কিন্তু সতর্কতা প্রয়োজন, কারণ double সঠিকতা হারাতে পারে)।
  5. BigDecimal(String val, MathContext mc): একটি স্ট্রিং মান এবং একটি MathContext অবজেক্ট দিয়ে BigDecimal তৈরি করা, যেখানে MathContext ব্যবহার করে সঠিকতা (precision) এবং গোলকরণ (rounding mode) নির্ধারণ করা হয়।

BigDecimal এর ব্যবহার এবং কনস্ট্রাক্টরের উদাহরণ:

1. String দিয়ে BigDecimal তৈরি করা

import java.math.BigDecimal;

public class BigDecimalConstructorExample {
    public static void main(String[] args) {
        // Using String constructor to create BigDecimal
        BigDecimal bd1 = new BigDecimal("123.456");
        System.out.println("BigDecimal created from String: " + bd1);
    }
}

Output:

BigDecimal created from String: 123.456

ব্যাখ্যা:

  • BigDecimal(String) কনস্ট্রাক্টরটি একটি স্ট্রিং ব্যবহার করে BigDecimal অবজেক্ট তৈরি করে। এটি সঠিকভাবে দশমিক মান প্যার্স করে।

2. int দিয়ে BigDecimal তৈরি করা

import java.math.BigDecimal;

public class BigDecimalIntConstructorExample {
    public static void main(String[] args) {
        // Using int constructor to create BigDecimal
        BigDecimal bd2 = new BigDecimal(100);
        System.out.println("BigDecimal created from int: " + bd2);
    }
}

Output:

BigDecimal created from int: 100

ব্যাখ্যা:

  • BigDecimal(int) কনস্ট্রাক্টরটি একটি পূর্ণসংখ্যা (int) ব্যবহার করে BigDecimal তৈরি করে।

3. long দিয়ে BigDecimal তৈরি করা

import java.math.BigDecimal;

public class BigDecimalLongConstructorExample {
    public static void main(String[] args) {
        // Using long constructor to create BigDecimal
        BigDecimal bd3 = new BigDecimal(123456789L);
        System.out.println("BigDecimal created from long: " + bd3);
    }
}

Output:

BigDecimal created from long: 123456789

ব্যাখ্যা:

  • BigDecimal(long) কনস্ট্রাক্টরটি একটি লং মান (long) ব্যবহার করে BigDecimal তৈরি করে।

4. double দিয়ে BigDecimal তৈরি করা (সতর্কতার সঙ্গে)

import java.math.BigDecimal;

public class BigDecimalDoubleConstructorExample {
    public static void main(String[] args) {
        // Using double constructor to create BigDecimal
        BigDecimal bd4 = new BigDecimal(0.1);  // May cause precision issues
        System.out.println("BigDecimal created from double: " + bd4);
    }
}

Output:

BigDecimal created from double: 0.1000000000000000055511151231257827021181583404541015625

ব্যাখ্যা:

  • BigDecimal(double) কনস্ট্রাক্টরটি double এর সঠিকতা নিয়ে কিছু সমস্যা সৃষ্টি করতে পারে। double টাইপের মানে সীমিত সঠিকতা থাকে, তাই এটি বড় সংখ্যার সাথে সঠিক নয়। BigDecimal কনস্ট্রাক্টরের মাধ্যমে double টাইপের মানের গণনা সঠিকভাবে নাও হতে পারে।
  • এই ধরনের সমস্যা এড়ানোর জন্য String থেকে BigDecimal তৈরি করা ভালো।

5. BigDecimal এবং MathContext ব্যবহার করে তৈরি করা

MathContext ব্যবহার করে আপনি precision (সঠিকতা) এবং rounding (গোলকরণ) নিয়ন্ত্রণ করতে পারেন। এটি BigDecimal এর গাণিতিক অপারেশনগুলোর সঠিকতা নিয়ন্ত্রণে সহায়ক।

import java.math.BigDecimal;
import java.math.MathContext;

public class BigDecimalWithMathContextExample {
    public static void main(String[] args) {
        // Create MathContext with precision 5
        MathContext mc = new MathContext(5);  // precision is set to 5
        
        // Create BigDecimal with MathContext
        BigDecimal bd5 = new BigDecimal("123.456789", mc);
        System.out.println("BigDecimal with MathContext: " + bd5);
    }
}

Output:

BigDecimal with MathContext: 123.46

ব্যাখ্যা:

  • MathContext দিয়ে সঠিকতা (precision) এবং গোলকরণের ধরন নির্ধারণ করা হয়েছে। এখানে precision 5 এর মাধ্যমে দশমিকের পরে ৫টি ডিজিট পর্যন্ত সঠিকতা বজায় রেখে মান প্রদর্শন করা হয়েছে।

BigDecimal এর অন্যান্য কার্যকারিতা:

BigDecimal ক্লাসে কিছু গুরুত্বপূর্ণ গাণিতিক অপারেশন রয়েছে যা সাধারণ গাণিতিক গণনায় ব্যবহৃত হয়:

  1. add(): দুটি BigDecimal যোগ করার জন্য।
  2. subtract(): দুটি BigDecimal বিয়োগ করার জন্য।
  3. multiply(): দুটি BigDecimal গুণ করার জন্য।
  4. divide(): দুটি BigDecimal ভাগ করার জন্য।
  5. setScale(): দশমিক স্থান নির্ধারণের জন্য (গোলকরণের নির্দিষ্ট ধরন সহ)।

উদাহরণ: BigDecimal গাণিতিক অপারেশন

import java.math.BigDecimal;

public class BigDecimalArithmeticExample {
    public static void main(String[] args) {
        // Create BigDecimal objects
        BigDecimal num1 = new BigDecimal("100.25");
        BigDecimal num2 = new BigDecimal("50.5");

        // Add two BigDecimal objects
        BigDecimal sum = num1.add(num2);
        System.out.println("Sum: " + sum);

        // Subtract two BigDecimal objects
        BigDecimal difference = num1.subtract(num2);
        System.out.println("Difference: " + difference);

        // Multiply two BigDecimal objects
        BigDecimal product = num1.multiply(num2);
        System.out.println("Product: " + product);

        // Divide two BigDecimal objects with scale and rounding mode
        BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
        System.out.println("Quotient: " + quotient);
    }
}

Output:

Sum: 150.75
Difference: 49.75
Product: 5062.75
Quotient: 1.98
  1. BigDecimal ক্লাসটি দশমিক গাণিতিক হিসাবের জন্য ব্যবহৃত হয় যেখানে সঠিকতার প্রয়োজন।
  2. BigDecimal তৈরি করার জন্য বিভিন্ন কনস্ট্রাক্টর উপলব্ধ, যেমন String, int, long, এবং double
  3. MathContext এর মাধ্যমে আপনি গাণিতিক অপারেশনগুলির সঠিকতা এবং গোলকরণের ধরন নির্ধারণ করতে পারেন।
  4. BigDecimal ক্লাসের add(), subtract(), multiply(), divide() ইত্যাদি গাণিতিক অপারেশনগুলি সঠিকতার সাথে হিসাব করতে সহায়ক।
Content added By
Promotion

Are you sure to start over?

Loading...